// 
// Bachelor of Software Engineering
// Media Design School
// Auckland
// New Zealand
//
// (c) 2005 - 2014 Media Design School
//
// File Name	: ShowStack.h
// Desrciption	: CShowStack declaration file.
// Author(s)	: Hayden Asplet.
// Mail			: hayden.asplet@mediadesignschool.com
//

#pragma once

#ifndef __SHOWSTACK_H__
#define __SHOWSTACK_H__

// Library Includes

// Local Includes
#include "CardStack.h"

//------------------------------------------------------------
// A CShowStack lets you show a certain number of the top 
// cards of the stack, only.
//
// It is used for the waste and deck stacks to provide an
// impression that they increasing or decreasing in size.
// 
// It just overiddes the VUpdatePositions of the CCardStack
// base class
//------------------------------------------------------------

class CShowStack : public CCardStack {
	// Member Functions
public:
	CShowStack();
	CShowStack(const CPoint& _krPosition, int _iNoOfCardsToShow, int _iOffset = 0, const EStackDirection& _krDirection = keDown);
	CShowStack(const CShowStack& _krStack);

	~CShowStack();

	virtual CPoint VGetNextPosition() const;
	virtual void VUpdatePositions();

	void SetNoOfCardsToShow(int _iNoOfCardsToShow);
protected:
private:

	// Member Variables
public:
protected:
private:
	int m_iNoOfCardsToShow;
};

#endif